#pragma once

class RConst
{
	friend class RendererStorageMgr;
public:
	RConst(EConst::Type type, uint count);
	~RConst();

	EConst::Type	GetType() const;
	uint			GetTotalSize() const;
	uint			GetCount() const;
	uchar*			GetPointer() const;
	IConstUpdater*	GetConstUpdater() const;
	uint			GetConstUpdaterArg() const;
	void			Update() const;

private:
	EConst::Type	m_type;
	uint			m_count;
	uchar*			m_data;
	uchar*			m_alignedData;

	IConstUpdater*	m_constUpdater;
	uint			m_constUpdaterArg;
};
